﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MySql.Data.MySqlClient;
using MySql.Data.Types;
using System.Data.Sql;
using System.Data.SqlClient;

namespace GCon
{
    /// <summary>
    /// Descripción breve de Con_Falta
    /// </summary>
    public class Con_Falta
    {
        public Con_Falta()
        {
            //
            // TODO: Agregar aquí la lógica del constructor
            //
        }

        /// <summary>
        /// Constructor con todos los parametros
        /// </summary>
        public Con_Falta(String ID_PK, String ID_ALUMNO, String ID_ASIGNATURA, String FECHA, String ID_MATRICULA, String JUSTIFICADA)
        {
            this._ID_PK = ID_PK;
            this._ID_ALUMNO = ID_ALUMNO;
            this._ID_ASIGNATURA = ID_ASIGNATURA;
            this._FECHA = FECHA;
            this._ID_MATRICULA = ID_MATRICULA;
            this._JUSTIFICADA = JUSTIFICADA;
        }

        /// <summary>
        /// Constructor DE COPIA
        /// </summary>
        public Con_Falta(Con_Falta otro)
        {
            this._ID_PK = otro._ID_PK;
            this._ID_ALUMNO = otro._ID_ALUMNO;
            this._ID_ASIGNATURA = otro._ID_ASIGNATURA;
            this._FECHA = otro._FECHA;
            this._ID_MATRICULA = otro._ID_MATRICULA;
            this._JUSTIFICADA = otro._JUSTIFICADA;
        }

        public void ApuntarFalta(String ALUMNO, String ASIGNATURA, String FECHA, String JUSTIFICADA)
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL ApuntarFalta ( '" + FECHA + "','" + ALUMNO + "','" + ASIGNATURA + "','"
                                            + JUSTIFICADA + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        /// <summary>
        /// Procedimiento de eliminación.
        /// Elimina de la BBDD un Falta.
        /// </summary>
        public void EliminaFalta()
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL EliminaFalta ( '" + this._ID_PK + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        /// <summary>
        /// Procedimiento de justificación.
        /// Justifica de la BBDD una Falta.
        /// </summary>
        public void JustificaFalta()
        {
            MySqlConnection oConexion;
            MySqlCommand oComando;
            String llamada;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";

            llamada = "CALL JustificaFalta ( '" + this._ID_PK + "' );";
            oComando = new MySqlCommand(llamada, oConexion);

            oConexion.Open();
            oComando.ExecuteReader();

            oConexion.Close();
        }

        /// Getters
        public String Get_ID_PK()
        {
            return this._ID_PK;
        }

        public String Get_ID_ALUMNO()
        {
            return this._ID_ALUMNO;
        }

        public String Get_ID_ASIGNATURA()
        {
            return this._ID_ASIGNATURA;
        }

        public String Get_NOM_ASIGNATURA()
        {
            return this._NOM_ASIGNATURA;
        }

        public String Get_FECHA()
        {
            return this._FECHA;
        }

        public String Get_ID_MATRICULA()
        {
            return this._ID_MATRICULA;
        }

        public String Get_JUSTIFICADA()
        {
            return this._JUSTIFICADA;
        }

        /// Setters
        public void Set_ID_PK(String parametro)
        {
            this._ID_PK = parametro;
        }

        public void Set_ID_ALUMNO(String parametro)
        {
            this._ID_ALUMNO = parametro;
        }

        public void Set_NOM_ASIGNATURA(String parametro)
        {
            this._NOM_ASIGNATURA = parametro;
        }

        public void Set_ID_ASIGNATURA(String parametro)
        {
            this._ID_ASIGNATURA = parametro;
        }

        public void Set_FECHA(String parametro)
        {
            this._FECHA = parametro;
        }

        public void Set_ID_MATRICULA(String parametro)
        {
            this._ID_MATRICULA = parametro;
        }

        public void Set_JUSTIFICADA(String parametro)
        {
            this._JUSTIFICADA = parametro;
        }

        //Atributos
        private String _ID_PK;
        private String _ID_ALUMNO;
        private String _ID_ASIGNATURA;
        private String _NOM_ASIGNATURA;
        private String _FECHA;
        private String _ID_MATRICULA;
        private String _JUSTIFICADA;
    }
}
